// Params.h

// Parametre servera v modeli sveta

#ifndef PARAMS_H
#define PARAMS_H

#include "Player/World/WorldObject.h"
#include "Common/World/ParamStructs.h"
#include "Common/World/Types.h"
#include "Common/World/Point.h"

// Strucne parametre servera a hraca v modeli sveta
class Params : public WorldObject
{
protected:
	//
	void SetupFlags();
public:
	// Pointer na parametre servera
	SERVER_PARAMS* server;
	// Pointer na hraca
	PLAYER_PARAMS* player;
	// Pointer na pointer na typ hraca
	PLAYER_TYPE** types;
	//
	Point flags[FLAG_MAX];

	// Konstruktor
	Params(World* w);
	// Kopirovaci konstruktor
	Params(const Params& params);
	// Destruktor
	virtual ~Params();

	// Spracuje a nastavi parametre hraca
	void ProcessPlayerParams(const PLAYER_PARAMS* params);
	// Spracuje a nastavi parametre typu hraca identifikovaneho id
	void ProcessPlayerType(int id, const PLAYER_TYPE* type);
	// Spracuje a nastavi parametre servera
	void ProcessServerParams(const SERVER_PARAMS* params);
};

#endif // PARAMS_H
